/**
49. 字母异位词分组
中等
给你一个字符串数组，请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:

输入: strs = [""]
输出: [[""]]
示例 3:

输入: strs = ["a"]
输出: [["a"]]
 */
function groupAnagrams(strs: string[]): string[][] {
  const map = new Map<string, string[]>()
  for (const str of strs) {
    console.log(str.split(''));
    console.log(str.split('').sort());

    const key = str.split('').sort().join('')
    console.log(key);
    
    if (map.has(key)) {
      map.get(key)?.push(str)
    } else {
      map.set(key, [str])
    }
  }
  return Array.from(map.values())
};

console.log(groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat", "bat", "bat", "bat"]))